﻿using System.Drawing;
using System.Windows.Forms;

namespace DevelopersTestPad.AppFrame
{
    /// <summary>
    /// A custom ToolStipRenderer.
    /// </summary>
    internal class CustomToolStripRenderer : ToolStripProfessionalRenderer
    {
        internal CustomToolStripRenderer() : base(new Vs2012ColorTable())
        {
            RoundedEdges = false;            
        }

        /// <summary>
        /// Visual Studio 2012 Color Scheme
        /// 
        /// ToolStrip Customizer for .NET WinForms
        /// http://toolstripcustomizer.codeplex.com/
        /// </summary>
        public sealed class Vs2012ColorTable : ProfessionalColorTable
        {
            public override Color ButtonSelectedHighlight
            {
                get { return ButtonSelectedGradientMiddle; }
            }
            public override Color ButtonSelectedHighlightBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonPressedHighlight
            {
                get { return ButtonPressedGradientMiddle; }
            }
            public override Color ButtonPressedHighlightBorder
            {
                get { return ButtonPressedBorder; }
            }
            public override Color ButtonCheckedHighlight
            {
                get { return ButtonCheckedGradientMiddle; }
            }
            public override Color ButtonCheckedHighlightBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonPressedBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonSelectedBorder
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ButtonCheckedGradientBegin
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonCheckedGradientMiddle
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonCheckedGradientEnd
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonSelectedGradientBegin
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonSelectedGradientMiddle
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonSelectedGradientEnd
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color ButtonPressedGradientBegin
            {
                get { return Color.FromArgb(255, 32, 172, 232); }
            }
            public override Color ButtonPressedGradientMiddle
            {
                get { return Color.FromArgb(255, 32, 172, 232); }
            }
            public override Color ButtonPressedGradientEnd
            {
                get { return Color.FromArgb(255, 32, 172, 232); }
            }
            public override Color CheckBackground
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color CheckSelectedBackground
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color CheckPressedBackground
            {
                get { return Color.FromArgb(255, 32, 172, 232); }
            }
            public override Color GripDark
            {
                get { return Color.FromArgb(255, 221, 226, 236); }
            }
            public override Color GripLight
            {
                get { return Color.FromArgb(255, 204, 204, 219); }
            }
            public override Color ImageMarginGradientBegin
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ImageMarginGradientMiddle
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ImageMarginGradientEnd
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ImageMarginRevealedGradientBegin
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ImageMarginRevealedGradientMiddle
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ImageMarginRevealedGradientEnd
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color MenuStripGradientBegin
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color MenuStripGradientEnd
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color MenuItemSelected
            {
                get { return Color.FromArgb(255, 248, 249, 250); }
            }
            public override Color MenuItemBorder
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color MenuBorder
            {
                get { return Color.FromArgb(255, 204, 206, 219); }
            }
            public override Color MenuItemSelectedGradientBegin
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color MenuItemSelectedGradientEnd
            {
                get { return Color.FromArgb(255, 254, 254, 254); }
            }
            public override Color MenuItemPressedGradientBegin
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color MenuItemPressedGradientMiddle
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color MenuItemPressedGradientEnd
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color RaftingContainerGradientBegin
            {
                get { return Color.FromArgb(255, 186, 192, 201); }
            }
            public override Color RaftingContainerGradientEnd
            {
                get { return Color.FromArgb(255, 186, 192, 201); }
            }
            public override Color SeparatorDark
            {
                get { return Color.FromArgb(255, 204, 206, 219); }
            }
            public override Color SeparatorLight
            {
                get { return Color.FromArgb(255, 246, 246, 246); }
            }
            public override Color StatusStripGradientBegin
            {
                get { return Color.FromArgb(255, 79, 146, 219); }
            }
            public override Color StatusStripGradientEnd
            {
                get { return Color.FromArgb(255, 79, 146, 219); }
            }
            public override Color ToolStripBorder
            {
                get { return Color.FromArgb(0, 0, 0, 0); }
            }
            public override Color ToolStripDropDownBackground
            {
                get { return Color.FromArgb(255, 231, 232, 236); }
            }
            public override Color ToolStripGradientBegin
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripGradientMiddle
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripGradientEnd
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripContentPanelGradientBegin
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripContentPanelGradientEnd
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripPanelGradientBegin
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color ToolStripPanelGradientEnd
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color OverflowButtonGradientBegin
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color OverflowButtonGradientMiddle
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }
            public override Color OverflowButtonGradientEnd
            {
                get { return Color.FromArgb(255, 239, 239, 242); }
            }            
        }

        /// <summary>
        /// Visual Studio 2010 Color Scheme
        /// 
        /// ToolStrip Customizer for .NET WinForms
        /// http://toolstripcustomizer.codeplex.com/
        /// </summary>
        public sealed class Vs2010ColorTable : ProfessionalColorTable
        {
            public override Color ButtonSelectedHighlight
            {
                get { return ButtonSelectedGradientMiddle; }
            }
            public override Color ButtonSelectedHighlightBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonPressedHighlight
            {
                get { return ButtonPressedGradientMiddle; }
            }
            public override Color ButtonPressedHighlightBorder
            {
                get { return ButtonPressedBorder; }
            }
            public override Color ButtonCheckedHighlight
            {
                get { return ButtonCheckedGradientMiddle; }
            }
            public override Color ButtonCheckedHighlightBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonPressedBorder
            {
                get { return ButtonSelectedBorder; }
            }
            public override Color ButtonSelectedBorder
            {
                get { return Color.FromArgb(255, 229, 195, 101); }
            }
            public override Color ButtonCheckedGradientBegin
            {
                get { return Color.FromArgb(255, 255, 232, 166); }
            }
            public override Color ButtonCheckedGradientMiddle
            {
                get { return Color.FromArgb(255, 255, 232, 166); }
            }
            public override Color ButtonCheckedGradientEnd
            {
                get { return Color.FromArgb(255, 255, 252, 242); }
            }
            public override Color ButtonSelectedGradientBegin
            {
                get { return Color.FromArgb(255, 255, 252, 242); }
            }
            public override Color ButtonSelectedGradientMiddle
            {
                get { return Color.FromArgb(255, 255, 245, 217); }
            }
            public override Color ButtonSelectedGradientEnd
            {
                get { return Color.FromArgb(255, 255, 236, 181); }
            }
            public override Color ButtonPressedGradientBegin
            {
                get { return Color.FromArgb(255, 255, 232, 166); }
            }
            public override Color ButtonPressedGradientMiddle
            {
                get { return Color.FromArgb(255, 255, 232, 166); }
            }
            public override Color ButtonPressedGradientEnd
            {
                get { return Color.FromArgb(255, 255, 232, 166); }
            }
            public override Color CheckBackground
            {
                get { return Color.FromArgb(255, 255, 230, 162); }
            }
            public override Color CheckSelectedBackground
            {
                get { return Color.FromArgb(255, 255, 230, 162); }
            }
            public override Color CheckPressedBackground
            {
                get { return Color.FromArgb(255, 253, 170, 96); }
            }
            public override Color GripDark
            {
                get { return Color.FromArgb(255, 126, 138, 154); }
            }
            public override Color GripLight
            {
                get { return Color.FromArgb(255, 227, 230, 232); }
            }
            public override Color ImageMarginGradientBegin
            {
                get { return Color.FromArgb(255, 223, 236, 239); }
            }
            public override Color ImageMarginGradientMiddle
            {
                get { return Color.FromArgb(255, 223, 236, 239); }
            }
            public override Color ImageMarginGradientEnd
            {
                get { return Color.FromArgb(255, 223, 236, 239); }
            }
            public override Color ImageMarginRevealedGradientBegin
            {
                get { return Color.FromArgb(255, 233, 238, 238); }
            }
            public override Color ImageMarginRevealedGradientMiddle
            {
                get { return Color.FromArgb(255, 233, 238, 238); }
            }
            public override Color ImageMarginRevealedGradientEnd
            {
                get { return Color.FromArgb(255, 233, 238, 238); }
            }
            public override Color MenuStripGradientBegin
            {
                get { return Color.FromArgb(255, 162, 176, 202); }
            }
            public override Color MenuStripGradientEnd
            {
                get { return Color.FromArgb(255, 168, 182, 206); }
            }
            public override Color MenuItemSelected
            {
                get { return Color.FromArgb(255, 255, 236, 181); }
            }
            public override Color MenuItemBorder
            {
                get { return Color.FromArgb(255, 229, 195, 101); }
            }
            public override Color MenuBorder
            {
                get { return Color.FromArgb(255, 105, 119, 135); }
            }
            public override Color MenuItemSelectedGradientBegin
            {
                get { return Color.FromArgb(255, 252, 242, 255); }
            }
            public override Color MenuItemSelectedGradientEnd
            {
                get { return Color.FromArgb(255, 254, 227, 148); }
            }
            public override Color MenuItemPressedGradientBegin
            {
                get { return Color.FromArgb(255, 207, 211, 218); }
            }
            public override Color MenuItemPressedGradientMiddle
            {
                get { return Color.FromArgb(255, 218, 223, 231); }
            }
            public override Color MenuItemPressedGradientEnd
            {
                get { return Color.FromArgb(255, 218, 223, 231); }
            }
            public override Color RaftingContainerGradientBegin
            {
                get { return Color.FromArgb(255, 186, 192, 201); }
            }
            public override Color RaftingContainerGradientEnd
            {
                get { return Color.FromArgb(255, 186, 192, 201); }
            }
            public override Color SeparatorDark
            {
                get { return Color.FromArgb(255, 171, 180, 190); }
            }
            public override Color SeparatorLight
            {
                get { return Color.FromArgb(255, 117, 128, 145); }
            }
            public override Color StatusStripGradientBegin
            {
                get { return Color.FromArgb(255, 128, 140, 162); }
            }
            public override Color StatusStripGradientEnd
            {
                get { return Color.FromArgb(255, 111, 125, 149); }
            }
            public override Color ToolStripBorder
            {
                get { return Color.FromArgb(255, 99, 109, 126); }
            }
            public override Color ToolStripDropDownBackground
            {
                get { return Color.FromArgb(255, 218, 223, 231); }
            }
            public override Color ToolStripGradientBegin
            {
                get { return Color.FromArgb(255, 221, 226, 236); }
            }
            public override Color ToolStripGradientMiddle
            {
                get { return Color.FromArgb(255, 203, 210, 226); }
            }
            public override Color ToolStripGradientEnd
            {
                get { return Color.FromArgb(255, 203, 210, 226); }
            }
            public override Color ToolStripContentPanelGradientBegin
            {
                get { return Color.FromArgb(255, 137, 148, 163); }
            }
            public override Color ToolStripContentPanelGradientEnd
            {
                get { return Color.FromArgb(255, 137, 148, 163); }
            }
            public override Color ToolStripPanelGradientBegin
            {
                get { return Color.FromArgb(255, 156, 170, 193); }
            }
            public override Color ToolStripPanelGradientEnd
            {
                get { return Color.FromArgb(255, 156, 170, 193); }
            }
            public override Color OverflowButtonGradientBegin
            {
                get { return Color.FromArgb(255, 233, 235, 237); }
            }
            public override Color OverflowButtonGradientMiddle
            {
                get { return Color.FromArgb(255, 233, 235, 237); }
            }
            public override Color OverflowButtonGradientEnd
            {
                get { return Color.FromArgb(255, 208, 213, 217); }
            }
        }
    }
}
